Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pipeline step types proposal #81

Merged
merged 17 commits into from
Apr 22, 2022
Merged

Conversation

amfred
Copy link
Collaborator

@amfred amfred commented Jan 10, 2022

These are inspired by https://github.com/open-toolchain/tekton-catalog and https://ploigos.github.io/ploigos-docs/#_everything_workflow in particular, but I believe the terminology here is generally accepted. I used the term "build step" because it's the most commonly used term for this level of pipeline implementation, from the overview above.

I recommend putting this section just after the Stages, but this section can also stand alone.

#77

@amfred amfred changed the title Build step proposal Pipeline step proposal Jan 10, 2022
@amfred amfred changed the title Pipeline step proposal Pipeline step types proposal Jan 10, 2022
Copy link
Collaborator

@m-linner-ericsson m-linner-ericsson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great initiative! I had a bunch of questions and comments.

docs/vocabulary.md Show resolved Hide resolved
docs/vocabulary.md Show resolved Hide resolved
docs/vocabulary.md Outdated Show resolved Hide resolved
docs/vocabulary.md Show resolved Hide resolved
docs/vocabulary.md Outdated Show resolved Hide resolved
docs/vocabulary.md Show resolved Hide resolved
docs/vocabulary.md Show resolved Hide resolved
docs/vocabulary.md Show resolved Hide resolved
Each type of Pipeline Step will generally have several implementations that are tool specific. For example, Source will have implementations for various Source Code Management (SCM) tools. Publish will have implementations for each type of repository, and so on.

#### Setup
* Semantics: Provision build resources, set up the build workspace.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the Setup stage specifically for preparing for builds?

Could it also be used to prepare for tests?

If not, consider naming it "Build Setup".

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i had a similar comment on PR #76 (comment) since similar setup steps are required for other stages.

Copy link
Collaborator Author

@amfred amfred Mar 6, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's put "Build Setup" and "Test Setup" as two different examples of setup steps. If you're running one pipeline that builds and tests you might only need one setup step, or you might want a "daily test pipeline" that only setups up its test environment and runs tests, without a build. I took "build" out of the description of this one.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds great!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll put this in a separate PR just because the merge conflicts are getting fun.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, nix that last comment; I had already taken "build" out of the name.

docs/vocabulary.md Outdated Show resolved Hide resolved
docs/vocabulary.md Outdated Show resolved Hide resolved
docs/vocabulary.md Show resolved Hide resolved
docs/vocabulary.md Show resolved Hide resolved
Each type of Pipeline Step will generally have several implementations that are tool specific. For example, Source will have implementations for various Source Code Management (SCM) tools. Publish will have implementations for each type of repository, and so on.

#### Setup
* Semantics: Provision build resources, set up the build workspace.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i had a similar comment on PR #76 (comment) since similar setup steps are required for other stages.

docs/vocabulary.md Outdated Show resolved Hide resolved
docs/vocabulary.md Outdated Show resolved Hide resolved
docs/vocabulary.md Show resolved Hide resolved
@justinabrahms
Copy link
Collaborator

justinabrahms commented Feb 17, 2022

As part of #83, we've been wondering how the notion of "quality gates" relates between this and #76.

A quality gate, in my mind, ensures that the things that come after it are in some way safer than before it went through the quality gate. Like, if we think of a load test quality gate.. the artifact is lower risk after this, because we know it can handle some set amount of load (else it would fail the gate).

So the question is.. Is "quality gate" a step? Or can steps be quality gates? Or is there something that sits between step & stage called quality gates and a quality gate is just made up of steps? Not sure if this is the right place to have this conversation, but you've done a ton of smart thinking about this @amfred and thought it would be relevant to this proposal.

@amfred
Copy link
Collaborator Author

amfred commented Mar 6, 2022

@justinabrahms I think you're right; quality gates are often implemented as steps in a pipeline. In fact, ideally we want most of our quality gates automated, and pipelines are a great way to do that. So we might as well use consistent terminology!

Quality gates might be manual, but then we don't talk about them as much in the pipeline context. From a pipeline perspective, manual steps could manifest as opening an issue or a request. Or they might happen entirely apart from the pipeline, in a paper process.

@fdegir
Copy link
Member

fdegir commented Mar 30, 2022

Similar to #76, could we merge this if there is no major concern?

docs/vocabulary.md Outdated Show resolved Hide resolved
Co-authored-by: Justin Abrahms <justin@abrah.ms>
Co-authored-by: Mattias Linnér <54929896+m-linner-ericsson@users.noreply.github.com>
@amfred amfred merged commit 132d007 into cdfoundation:master Apr 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants